The present invention relates to computer networks, and more particularly to a method and device for providing priority access to a shared access network such as an Ethernet network, preferably using a multi-port interface.
Ethernet is a widely-installed local area network technology. Ethernet uses carrier sense, multiple access, collision detect (xe2x80x9cCSMA/CDxe2x80x9d) to provide shared access to a physical network by many interconnected devices. As is understood by those of ordinary skill, an Ethernet compliant device using CSMA/CD shares the physical resource by first detecting or sensing the presence or absence of transmission signals originating with other competing network devices (xe2x80x9ccarrier sensexe2x80x9d). While such transmission signals are detected, the device refrains from transmitting its own data, usually in the form of a frame. Upon detecting that a competing device has completed its current transmission, the device transmits its own data. In the presence of a collision between data from the device and a competing device, the transmitting device re-transmits its frame after a random delay (xe2x80x9ccollision detectxe2x80x9d). This is attempted multiple times, until finally the frame is successfully transmitted without collision or discarded. Accordingly, in the face of wide competition from several devices, data transmission time from a device may be subject to significant and often unpredictable delay or even loss.
This is not a problem where real-time performance is not critical. However, in recent years, new network connected appliances are being proposed whose main applications are highly time-sensitive. One example of such an appliance is a telephone.
As is appreciated, delay in an audio conversation is annoying and unacceptable. On a shared network, frames containing audio data may be delayed or may experience multiple collisions with other frames until ultimately an unusable telephone connection results.
One network enhancement that addresses congestion uses bridges or switches to effectively divide a network into two or more sub-networks. Such bridges or switches examine frame destination addresses (typically by examining Ethernet media access control (xe2x80x9cMACxe2x80x9d) addresses) and prevent frames not destined for a sub-network from propagating on the sub network, thereby reducing sub-network traffic and collisions.
Optimally, bridges or switches should be used with a separate physical connection coupling a high priority appliance to a bridge or switch. This is clearly inconvenient. Moreover, the installation of additional Ethernet bridges or switches may involve substantial expense.
Most existing networks provide each user with only a single Ethernet cable to the user""s desktop, which is typically in use by the user""s PC. Therefore, installing a high priority network appliance such as a telephone on this existing Ethernet cable is very attractive. Bridges or switches may divide the network into several sub-networks. However, even on such sub-networks collisions are likely to occur between high priority appliance data and low priority PC data. Typically, PC applications are not as time critical as real-time audio processing applications used in telephony. Moreover, the protocols used for PC applications are tolerant to delayed and lost frames of data. Audio processing applications may not be and, therefore, priority-based access to network bandwidth, favouring the telephone, is preferred.
Existing Ethernet switches, as for example available from Vertex Networks of Irvine, Calif. allow priority access to a network by way of a high priority port. However, such existing switches do not provide efficient flow control, and cannot provide priority during re-transmission of low priority frames in accordance with existing Ethernet protocols.
Accordingly, improved methods and interfaces providing prioritized access to a shared access data network is desired.
In accordance with the present invention, an interface provides priority access to a network. At least one port of the interface transmits high priority frames in advance of lower priority frames. High priority frames are preferably buffered. In accordance with one aspect, buffered high priority frames, pre-empt transmission of low priority frames at the port. If the port is operating half duplex using CSMA/CD, transmission of high priority frames pre-empts re-transmission of lower priority frames for which a collision has been detected. Additionally, in the case of frames to be broadcast to multiple ports, buffered frames may be transmitted at varying times at the ports at which the frame is to be broadcast.
In a further aspect, a multi-port interface buffers frames received at each port. As the buffer fills, flow of frames into the interface is limited on a per-port basis, based on the number of frames already buffered for a particular port.
In a further embodiment, old buffered high priority frames may be discarded at an interface in favour of newer high priority frames. This may be particularly useful in the case of buffer overflow, when flow from an interconnected appliance cannot be controlled.
In accordance with an aspect of the present invention there is provided a network interface including a high priority port for interconnecting the interface to a high priority network appliance; a lower priority port for interconnecting the interface to a lower priority network appliance; a network port for connecting the interface to a data network; and a buffer in communication with the high lower and network ports, to buffer frames from the high priority port until these frames are transmitted. The device is operable to receive frames at the high priority port and the lower priority port and to transmit frames from the high priority port at the network port in advance of frames from the lower priority port. Any buffered frames from the high priority port for the network port, pre-empt transmission of frames from the low priority port at the network port.
In accordance with another aspect, a network interface includes first, second and third network ports; a controller in communication with these ports; and buffer memory in communication with the controller. The controller is adapted to transfer frames between the first, second and third ports by way of the buffer memory. The controller is further adapted to order transmission of frames at these ports so that any frames from the first port to be transmitted at both the second and the third port, may be transmitted at different times at the second and third port.
In accordance with yet another aspect, a network interface includes first, second and third network ports; a controller in communication with these ports; and buffer memory in communication with the controller. The controller is adapted to receive frames from these ports and buffer these frames within the buffer memory, until these frames are transmitted from the interface; and prioritize frames received at the interface so that frames received at the first port are transmitted in advance of frames received at the second and third port at at least one of the second and third ports. The controller further limits flow from each of the first, second, and third ports, independently, in response to the number of frames already buffered at the interface from the first, second and third ports.
In accordance with another aspect, a method of transmitting high priority frames-and lower priority frames from a network port at an interface using carrier sense multiple access, collision detect (xe2x80x9cCSMA/CDxe2x80x9d) to transmit the frames, the method includes: (a) transmitting lower priority and higher priority frames from the port using CSMA/CD with high priority frames transmitted in advance of lower priority frames; and (b) in the presence of a detected collision at the port pre-empting re-transmission of a lower priority frame in favour of any high priority frames to be transmitted from the interface.
In accordance with another aspect, a network interface includes: a high priority port for connection to a network appliance; at least one other port; a controller in communication with these ports; and buffer memory in communication with the controller. The controller is adapted to receive frames from the high priority port, buffer the received frames within the buffer memory, and transmit the received frames at another port of the interface. Each of the received frames is buffered until no longer required at the interface. Incoming frames from the high priority port may be buffered to replace older received frames from the high priority port so that older frames are discarded in advance of newer frames at the interface, in the event of a buffer overflow.
Other aspects and features of the present invention will become apparent to those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.